---
title: Docker
---

Docker support is currently experimental. Running Open Interpreter inside of a Docker container may not function as you expect. Let us know on [Discord](https://discord.com/invite/6p3fD6rBVm) if you encounter errors or have suggestions to improve Docker support.

We are working on an official integration for Docker in the coming weeks. For now, you can use Open Interpreter in a sandboxed Docker container environment using the following steps:

1. If you do not have Docker Desktop installed, [install it](https://www.docker.com/products/docker-desktop) before proceeding.

2. Create a new directory and add a file named `Dockerfile` in it with the following contents:

```dockerfile
# Start with Python 3.11
FROM python:3.11

# Replace <your_openai_api_key> with your own key
ENV OPENAI_API_KEY <your_openai_api_key>

# Install Open Interpreter
RUN pip install open-interpreter
```

3. Run the following commands in the same directory to start Open Interpreter.

```bash
docker build -t openinterpreter .
docker run -d -it --name interpreter-instance openinterpreter interpreter
docker attach interpreter-instance
```

## Mounting Volumes

This is how you let it access _some_ files, by telling it a folder (a volume) it will be able to see / manipulate.

To mount a volume, you can use the `-v` flag followed by the path to the directory on your host machine, a colon, and then the path where you want to mount the directory in the container.

```bash
docker run -d -it -v /path/on/your/host:/path/in/the/container --name interpreter-instance openinterpreter interpreter
```

Replace `/path/on/your/host` with the path to the directory on your host machine that you want to mount, and replace `/path/in/the/container` with the path in the Docker container where you want to mount the directory.

Here's a simple example:

```bash
docker run -d -it -v $(pwd):/files --name interpreter-instance openinterpreter interpreter
```

In this example, `$(pwd)` is your current directory, and it is mounted to a `/files` directory in the Docker container (this creates that folder too).

## Flags

To add flags to the command, just append them after `interpreter`. For example, to run the interpreter with custom instructions, run the following command:

```bash
docker-compose run --rm oi interpreter --custom_instructions "Be as concise as possible"
```

Please note that some flags will not work. For example, `--config` will not work, because it cannot open the config file in the container. If you want to use a config file other than the default, you can create a `config.yml` file inside of the same directory, add your custom config, and then run the following command:

```bash
docker-compose run --rm oi interpreter --config_file config.yml
```